import time

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from time import sleep

# 实例化驱动
browser = webdriver.Chrome()
# 打开网页
browser.get('https://mail.126.com/')
# 最大化
browser.maximize_window()
# 跳进iframe框架
iframe = WebDriverWait(browser,10,0.5).until(EC.presence_of_all_elements_located((By.TAG_NAME,'iframe')))
browser.switch_to.frame(iframe[0])

# 输入账号
WebDriverWait(browser,10,0.5).until(EC.presence_of_element_located((By.NAME,'email'))).send_keys("baijiacheng_123")
# 输入密码
WebDriverWait(browser,10,0.5).until(EC.presence_of_element_located((By.NAME,'password'))).send_keys("qwe123..")
# 点击登录按钮
WebDriverWait(browser,10,0.5).until(EC.presence_of_element_located((By.ID,'dologin'))).click()

# 点击登录
WebDriverWait(browser,10,0.5).until(EC.presence_of_element_located((By.XPATH,'//*[text()="登录"]'))).click()

# 退出所有的iframe框架
browser.switch_to.default_content()

# 页面跳转
time.sleep(1)
# 点击通讯录
WebDriverWait(browser,10,0.5).until(EC.presence_of_element_located((By.ID,'_mail_tabitem_1_83text'))).click()

# 等待
time.sleep(8)

"""
元素找不到的原因：
1、没有加上合理的等待方式，元素还没加载出来，直接做操作，导致元素定位失败
2、出现了新的窗口，没有进行句柄切换，所以导致元素找不到
3、定位方式确实是错的，所以没定位到
4、出现了意外的alert，没有处理弹窗 ，所以定位失败
5、出现了iframe内联框架，没有跳进，所以定位失败
iframe：相当于网页嵌套了一个网页，要跳进去才能够操作的
"""


